package com.jprocms.module.cms.controller.admin.site.vo;

import com.jprocms.module.cms.api.dto.SiteConfigDto;
import com.mzt.logapi.starter.annotation.DiffLogField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 站点 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class SiteBaseVo {

    @Schema(description = "站点名称", required = true)
    @NotNull(message = "站点名称不能为空")
    @DiffLogField(name = "站点名称")
    private String name;

    @Schema(description = "站点目录名", required = true)
    @NotNull(message = "站点目录名不能为空")
    @DiffLogField(name = "站点目录名")
    private String sitePath;

    @Schema(description = "站点访问子目录(内网区分站点访问)")
    @DiffLogField(name = "站点访问子目录")
    private String siteVisitPath;

    @Schema(description = "访问协议", required = true)
    @NotNull(message = "访问协议不能为空")
    @DiffLogField(name = "访问协议")
    private String protocol;

    @Schema(description = "站点域名", required = true)
    @NotNull(message = "站点域名不能为空")
    @DiffLogField(name = "站点域名")
    private String siteDomain;

    @Schema(description = "域名别名")
    @DiffLogField(name = "域名别名")
    private String siteAliasDomain;

    @Schema(description = "站点状态（1开启  0 关闭）", required = true)
    @DiffLogField(name = "站点状态")
    private Integer status = 1;

    @Schema(description = "SEO标题")
    @DiffLogField(name = "SEO标题")
    private String seoTitle;

    @Schema(description = "SEO关键字")
    @DiffLogField(name = "SEO关键字")
    private String seoKey;

    @Schema(description = "SEO描述")
    @DiffLogField(name = "SEO描述")
    private String seoDesc;

    @Schema(description = "站点配置")
    @DiffLogField(name = "站点配置")
    private SiteConfigDto siteConfig;

    @Schema(description = "父站点ID")
    @DiffLogField(name = "父站点ID")
    private Long parentId;

    @Schema(description = "排序")
    @DiffLogField(name = "排序")
    private Integer sort = 10;

    @Schema(description = "id路径拼接")
    private String nodePath;


}
